package cn.tedu.hotel.serve.service;

import cn.tedu.hotel.serve.pojo.dto.HotelDTO;
import cn.tedu.hotel.serve.pojo.dto.HotelRoomInfoDTO;
import cn.tedu.hotel.serve.pojo.dto.HotelUpdateDTO;
import cn.tedu.hotel.serve.pojo.vo.*;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.util.List;

@Transactional
public interface IHotelService {
    /**
     * 剩余酒店房间数量，默认为10
     */
    int HOTEL_ROOM_NUMBER=10;

    double BASE_SCORE=5.00;

    BigDecimal getHotelAvgScore(Long hotelId);

    void addHotelInfo(HotelDTO hotelDTO);

    List<HotelVO> getHotelList();

    List<HotelLevelVO> getHotelLevelList();

    List<HotelSearchVO> getHotelListBySomethingOfLocation(String location);

    List<HotelSearchVO> getHotelListByContent(String content);

    HotelLevelVO getByHotelLevelId(Long id);

    void delete(Long id);

    HotelStandardVO getHotelById(Long id);

    HotelStandardVO getAdminHotelById(Long id);

    void update(Long id, HotelUpdateDTO hotelUpdateDTO);

    List<HotelRoomInfoVO> getAdminHotelRoomInfoList();

    void deleteHotelRoomInfo(Long id);

    HotelRoomInfoVO getAdminHotelRoomInfoById(Long id);

    void updateAdminHotelRoomInfoById(Long id, HotelRoomInfoDTO hotelRoomInfoDTO);

    void addAdminHotelRoomInfo(HotelRoomInfoDTO hotelRoomInfoDTO);
}
